<meta name="viewport" content="width=device-width, initial-scale=1">

<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../../assets/img/favicon-144.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../../assets/img/favicon-144.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../../assets/img/favicon-72.png">
<link rel="apple-touch-icon-precomposed" href="../../assets/img/favicon-32.png">
<link rel="shortcut icon" href="../../assets/img/favicon-32.png">

<link rel="stylesheet" href="../../assets/css/vk.css"/>
<link rel="stylesheet" href="../../assets/css/prism.css"/>


<vk-title>VkPhysicalDeviceMeshShaderPropertiesNV | NVK</vk-title>

<vk-centered>

  <vk-navigation>
  <vk-search-title>Search</vk-search-title>
  <vk-search>
    <input type="text" id="search" autocomplete="off" />
    <vk-search-results>
      <ol id="search-list">
        <li id="no-search-results">No Results</li>
      </ol>
    </vk-search-results>
  </vk-search>
  <vk-section-title style="margin-top: 1em;">Categories</vk-section-title>
  <vk-categories></vk-categories>
</vk-navigation>


  <vk-struct>

    <vk-name>VkPhysicalDeviceMeshShaderPropertiesNV</vk-name>

    <vk-description>Structure describing mesh shading properties</vk-description>

    <vk-section-title>Syntax</vk-section-title>
    <vk-syntax>
      <pre><code class="language-js">physicalDeviceMeshShaderPropertiesNV = VkPhysicalDeviceMeshShaderPropertiesNV();
physicalDeviceMeshShaderPropertiesNV = new VkPhysicalDeviceMeshShaderPropertiesNV();
physicalDeviceMeshShaderPropertiesNV = new VkPhysicalDeviceMeshShaderPropertiesNV(object);</code></pre>
    </vk-syntax>

    <vk-section-title>Stub <vk-property-type type="read-only">read-only</vk-property-type></vk-section-title>
    
    <vk-property-prototype id="expand-code" class="expand-btn"></vk-property-prototype>

    <vk-stub id="code-no-expand" style="display:none;">
      <pre><code class="language-js">let physicalDeviceMeshShaderPropertiesNV = new VkPhysicalDeviceMeshShaderPropertiesNV();
physicalDeviceMeshShaderPropertiesNV.sType;
physicalDeviceMeshShaderPropertiesNV.pNext;
physicalDeviceMeshShaderPropertiesNV.maxDrawMeshTasksCount;
physicalDeviceMeshShaderPropertiesNV.maxTaskWorkGroupInvocations;
physicalDeviceMeshShaderPropertiesNV.maxTaskWorkGroupSize;
physicalDeviceMeshShaderPropertiesNV.maxTaskTotalMemorySize;
physicalDeviceMeshShaderPropertiesNV.maxTaskOutputCount;
physicalDeviceMeshShaderPropertiesNV.maxMeshWorkGroupInvocations;
physicalDeviceMeshShaderPropertiesNV.maxMeshWorkGroupSize;
physicalDeviceMeshShaderPropertiesNV.maxMeshTotalMemorySize;
physicalDeviceMeshShaderPropertiesNV.maxMeshOutputVertices;
physicalDeviceMeshShaderPropertiesNV.maxMeshOutputPrimitives;
physicalDeviceMeshShaderPropertiesNV.maxMeshMultiviewViewCount;
physicalDeviceMeshShaderPropertiesNV.meshOutputPerVertexGranularity;
physicalDeviceMeshShaderPropertiesNV.meshOutputPerPrimitiveGranularity;
</code></pre>
    </vk-stub>

    <vk-stub id="code-expanded" style="display:none;">
      <pre><code class="language-js">let physicalDeviceMeshShaderPropertiesNV = new VkPhysicalDeviceMeshShaderPropertiesNV();
physicalDeviceMeshShaderPropertiesNV.sType;
physicalDeviceMeshShaderPropertiesNV.pNext;
physicalDeviceMeshShaderPropertiesNV.maxDrawMeshTasksCount;
physicalDeviceMeshShaderPropertiesNV.maxTaskWorkGroupInvocations;
physicalDeviceMeshShaderPropertiesNV.maxTaskWorkGroupSize;
physicalDeviceMeshShaderPropertiesNV.maxTaskTotalMemorySize;
physicalDeviceMeshShaderPropertiesNV.maxTaskOutputCount;
physicalDeviceMeshShaderPropertiesNV.maxMeshWorkGroupInvocations;
physicalDeviceMeshShaderPropertiesNV.maxMeshWorkGroupSize;
physicalDeviceMeshShaderPropertiesNV.maxMeshTotalMemorySize;
physicalDeviceMeshShaderPropertiesNV.maxMeshOutputVertices;
physicalDeviceMeshShaderPropertiesNV.maxMeshOutputPrimitives;
physicalDeviceMeshShaderPropertiesNV.maxMeshMultiviewViewCount;
physicalDeviceMeshShaderPropertiesNV.meshOutputPerVertexGranularity;
physicalDeviceMeshShaderPropertiesNV.meshOutputPerPrimitiveGranularity;
</code></pre>
    </vk-stub><vk-section-title>Properties</vk-section-title>

    <vk-properties>
      <vk-property-entry>
        <vk-property-prototype>VkPhysicalDeviceMeshShaderPropertiesNV.prototype.<vk-prototype-name>sType</vk-prototype-name></vk-property-prototype>
        <vk-property-type type="number"><a href="../enums/VkStructureType.html">VkStructureType</a></vk-property-type>
        <vk-property-description> is the type of this structure.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkPhysicalDeviceMeshShaderPropertiesNV.prototype.<vk-prototype-name>pNext</vk-prototype-name></vk-property-prototype>
        <vk-property-type type="null">null</vk-property-type>
        <vk-property-description> is <i>null</i> or a reference to an extension-specific structure.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkPhysicalDeviceMeshShaderPropertiesNV.prototype.<vk-prototype-name>maxDrawMeshTasksCount</vk-prototype-name></vk-property-prototype>
        <vk-property-type type="number">Number</vk-property-type>
        <vk-property-description> is the maximum number of local workgroups that <i>can</i> be launched by a single draw mesh tasks command. See <<drawing-mesh-shading>>.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkPhysicalDeviceMeshShaderPropertiesNV.prototype.<vk-prototype-name>maxTaskWorkGroupInvocations</vk-prototype-name></vk-property-prototype>
        <vk-property-type type="number">Number</vk-property-type>
        <vk-property-description> is the maximum total number of task shader invocations in a single local workgroup. The product of the X, Y, and Z sizes, as specified by the <i>LocalSize</i> execution mode in shader modules or by the object decorated by the <i>WorkgroupSize</i> decoration, <i>must</i> be less than or equal to this limit.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkPhysicalDeviceMeshShaderPropertiesNV.prototype.<vk-prototype-name>maxTaskWorkGroupSize</vk-prototype-name></vk-property-prototype>
        <vk-property-type type="array">Array<vk-property-type type="number">[Number]</vk-property-type></vk-property-type>
        <vk-property-description></vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkPhysicalDeviceMeshShaderPropertiesNV.prototype.<vk-prototype-name>maxTaskTotalMemorySize</vk-prototype-name></vk-property-prototype>
        <vk-property-type type="number">Number</vk-property-type>
        <vk-property-description> is the maximum number of bytes that the task shader can use in total for shared and output memory combined.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkPhysicalDeviceMeshShaderPropertiesNV.prototype.<vk-prototype-name>maxTaskOutputCount</vk-prototype-name></vk-property-prototype>
        <vk-property-type type="number">Number</vk-property-type>
        <vk-property-description> is the maximum number of output tasks a single task shader workgroup can emit.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkPhysicalDeviceMeshShaderPropertiesNV.prototype.<vk-prototype-name>maxMeshWorkGroupInvocations</vk-prototype-name></vk-property-prototype>
        <vk-property-type type="number">Number</vk-property-type>
        <vk-property-description> is the maximum total number of mesh shader invocations in a single local workgroup. The product of the X, Y, and Z sizes, as specified by the <i>LocalSize</i> execution mode in shader modules or by the object decorated by the <i>WorkgroupSize</i> decoration, <i>must</i> be less than or equal to this limit.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkPhysicalDeviceMeshShaderPropertiesNV.prototype.<vk-prototype-name>maxMeshWorkGroupSize</vk-prototype-name></vk-property-prototype>
        <vk-property-type type="array">Array<vk-property-type type="number">[Number]</vk-property-type></vk-property-type>
        <vk-property-description></vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkPhysicalDeviceMeshShaderPropertiesNV.prototype.<vk-prototype-name>maxMeshTotalMemorySize</vk-prototype-name></vk-property-prototype>
        <vk-property-type type="number">Number</vk-property-type>
        <vk-property-description> is the maximum number of bytes that the mesh shader can use in total for shared and output memory combined.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkPhysicalDeviceMeshShaderPropertiesNV.prototype.<vk-prototype-name>maxMeshOutputVertices</vk-prototype-name></vk-property-prototype>
        <vk-property-type type="number">Number</vk-property-type>
        <vk-property-description> is the maximum number of vertices a mesh shader output can store.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkPhysicalDeviceMeshShaderPropertiesNV.prototype.<vk-prototype-name>maxMeshOutputPrimitives</vk-prototype-name></vk-property-prototype>
        <vk-property-type type="number">Number</vk-property-type>
        <vk-property-description> is the maximum number of primitives a mesh shader output can store.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkPhysicalDeviceMeshShaderPropertiesNV.prototype.<vk-prototype-name>maxMeshMultiviewViewCount</vk-prototype-name></vk-property-prototype>
        <vk-property-type type="number">Number</vk-property-type>
        <vk-property-description> is the maximum number of multi-view views a mesh shader can use.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkPhysicalDeviceMeshShaderPropertiesNV.prototype.<vk-prototype-name>meshOutputPerVertexGranularity</vk-prototype-name></vk-property-prototype>
        <vk-property-type type="number">Number</vk-property-type>
        <vk-property-description> is the granularity with which mesh vertex outputs are allocated. The value can be used to compute the memory size used by the mesh shader, which must be less than or equal to <b>maxMeshTotalMemorySize</b>.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkPhysicalDeviceMeshShaderPropertiesNV.prototype.<vk-prototype-name>meshOutputPerPrimitiveGranularity</vk-prototype-name></vk-property-prototype>
        <vk-property-type type="number">Number</vk-property-type>
        <vk-property-description> is the granularity with which mesh outputs qualified as per-primitive are allocated. The value can be used to compute the memory size used by the mesh shader, which must be less than or equal to <b>maxMeshTotalMemorySize</b>.</vk-property-description>
      </vk-property-entry>
      
    </vk-properties>

    <vk-section-title>Default Properties</vk-section-title>

    <vk-properties>
      <vk-property-entry>
        <vk-property-prototype>VkPhysicalDeviceMeshShaderPropertiesNV.prototype.<vk-prototype-name>memoryBuffer</vk-prototype-name></vk-property-prototype>
        <vk-property-type type="arraybuffer"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer">ArrayBuffer</a></vk-property-type>
        <vk-property-description>Native memory reference of the structure.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkPhysicalDeviceMeshShaderPropertiesNV.<vk-prototype-name>memoryLayout</vk-prototype-name></vk-property-prototype>
        <vk-property-type type="object">Object</vk-property-type>
        <vk-property-description>Object describing the structure's memory layout.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkPhysicalDeviceMeshShaderPropertiesNV.<vk-prototype-name>byteLength</vk-prototype-name></vk-property-prototype>
        <vk-property-type type="number">Number</vk-property-type>
        <vk-property-description>Total native byte length of the structure.</vk-property-description>
      </vk-property-entry>
    </vk-properties>

    <vk-section-title>Internal Properties</vk-section-title>

    <vk-description>These properties are mainly used by <i>nvk</i> internally.</vk-description>

    <vk-properties>
      <vk-property-entry>
        <vk-property-prototype>VkPhysicalDeviceMeshShaderPropertiesNV.<vk-prototype-name>reset</vk-prototype-name></vk-property-prototype>
        <vk-property-description>Resets the native memory of the structure.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkPhysicalDeviceMeshShaderPropertiesNV.<vk-prototype-name>flush</vk-prototype-name></vk-property-prototype>
        <vk-property-description>Writes the structure's data into the native memory.</vk-property-description>
      </vk-property-entry>
      <vk-property-entry>
        <vk-property-prototype>VkPhysicalDeviceMeshShaderPropertiesNV.<vk-prototype-name>reflect</vk-prototype-name></vk-property-prototype>
        <vk-property-description>Synchronizes the structure's data with the native memory.</vk-property-description>
      </vk-property-entry>
    </vk-properties>

  </vk-struct>

</vk-centered>

<script>
const IS_ROOT = false;
</script>

<script type="text/javascript" src="../../assets/js/prism.min.js"></script>
<script type="text/javascript" src="../../assets/js/index.js"></script>
